%%%
  VERSION:1
  LANGUAGE:ENGLISH
%%%

MODULE MOTCOM(SYSMODULE, VIEWONLY)
  ! Motor commutation module loader
  ! Main entry routine
  
  PERS num CURRENT_RATIO := 2;
  
  PROC Commutation()
    IF TaskRunMec() THEN
      MotorCommProc;
    ELSE
      UIMsgBox "The routine can not be used in a task that has no mechanical unit";
    ENDIF
  ENDPROC

  
  LOCAL PROC MotorCommProc()
    VAR bool isLoaded := FALSE;
    Load \Dynamic, "RELEASE:" \File:="options/motcom/motcom_proc.sys";
    isLoaded := TRUE;
    %"MotorCommExe"%;
    UnLoad "RELEASE:" \File:="options/motcom/motcom_proc.sys";
    isLoaded := FALSE;
    TPShow TP_LATEST;
  ERROR
    TEST ERRNO
    case ERR_LOADED:
  	   SkipWarn;
  	   TRYNEXT;
    default:
      ! TPShow TP_LATEST;
    ENDTEST
  UNDO
    IF isLoaded = TRUE THEN
      UnLoad "RELEASE:" \File:="options/motcom/motcom_proc.sys";  
      isLoaded := FALSE;
    ENDIF
  ENDPROC  
 ENDMODULE


